If _MMMM_MMMM______NNNN_OOOO_GGGG_EEEE_TTTT is specified, only the _d_e_f_m_s_g part must be specified.
_c_a_t_a_l_o_g indicates the message database that contains the localized
version of the format string. _c_a_t_a_l_o_g must be limited to 14 characters.
These characters must be selected from a set of all characters values,
excluding _\\\\_0000 (null) and the ASCII codes for _//// (slash) and _:::: (colon).
_m_s_g_n_u_m must be a positive number that indicates the index of the string
into the message database.
If _c_a_t_a_l_o_g does not exist in the locale (specified by the last call to
_ssss_eeee_tttt_llll_oooo_cccc_aaaa_llll_eeee using the _LLLL_CCCC______AAAA_LLLL_LLLL or _LLLL_CCCC______MMMM_EEEE_SSSS_SSSS_AAAA_GGGG_EEEE_SSSS categories), or if the message
number is out of bounds, _pppp_ffff_mmmm_tttt attempts to retrieve the message from the _CCCC
locale. If this second retrieval fails, _pppp_ffff_mmmm_tttt uses the _d_e_f_m_s_g part of the
_f_o_r_m_a_t argument.
If _c_a_t_a_l_o_g is omitted, _pppp_ffff_mmmm_tttt attempts to retrieve the string from the
default catalog specified by the last call to _ssss_eeee_tttt_cccc_aaaa_tttt. In this case, the
_f_o_r_m_a_t argument has the following structure:
_m_s_g_n_u_m_::::_d_e_f_m_s_g.
_pppp_ffff_mmmm_tttt outputs _MMMM_eeee_ssss_ssss_aaaa_gggg_eeee _nnnn_oooo_tttt _ffff_oooo_uuuu_nnnn_dddd_!!!!_!!!!\_n as the format string if:
_vvvv_pppp_ffff_mmmm_tttt is the same as _pppp_ffff_mmmm_tttt except that instead of being called with a
variable number of arguments, it is called with an argument list as
defined by the _ssss_tttt_dddd_aaaa_rrrr_gggg_...._hhhh header file.
The _ssss_tttt_dddd_aaaa_rrrr_gggg_...._hhhh header file defines the type _vvvv_aaaa______llll_iiii_ssss_tttt and a set of macros for
advancing through a list of arguments whose number and types may vary.
The argument _a_p to _vvvv_pppp_ffff_mmmm_tttt is of type _vvvv_aaaa______llll_iiii_ssss_tttt. This argument is used with
the _ssss_tttt_dddd_aaaa_rrrr_gggg_...._hhhh header file macros _vvvv_aaaa______ssss_tttt_aaaa_rrrr_tttt, _vvvv_aaaa______aaaa_rrrr_gggg and _vvvv_aaaa______eeee_nnnn_dddd [see
_vvvv_aaaa______ssss_tttt_aaaa_rrrr_tttt, _vvvv_aaaa______aaaa_rrrr_gggg, and _vvvv_aaaa______eeee_nnnn_dddd in _ssss_tttt_dddd_aaaa_rrrr_gggg(5)]. The EXAMPLE sections below
show their use.
The macro _vvvv_aaaa______aaaa_llll_iiii_ssss_tttt is used as the parameter list in a function definition
as in the function called _eeee_rrrr_rrrr_oooo_rrrr in the example below. The macro
_vvvv_aaaa______ssss_tttt_aaaa_rrrr_tttt_((((_a_p_,,,, _)))), where _a_p is of type _vvvv_aaaa______llll_iiii_ssss_tttt, must be called before any
attempt to traverse and access unnamed arguments. Calls to _vvvv_aaaa______aaaa_rrrr_gggg_((((_a_p_,,,,
_a_t_y_p_e_)))) traverse the argument list. Each execution of _vvvv_aaaa______aaaa_rrrr_gggg expands to
an expression with the value and type of the next argument in the list
_a_p, which is the same object initialized by _vvvv_aaaa______ssss_tttt_aaaa_rrrr_tttt. The argument _a_t_y_p_e
is the type that the returned argument is expected to be. The _vvvv_aaaa______eeee_nnnn_dddd_((((_a_p_))))
macro must be invoked when all desired arguments have been accessed.
[The argument list in _a_p can be traversed again if _vvvv_aaaa______ssss_tttt_aaaa_rrrr_tttt is called